/* 
类型推断: TS会在没有明确的指定类型的时候推测出一个类型
    定义变量时赋值了, 推断为对应的类型
    定义变量时没有赋值, 推断为any类型
    初始值undfined或null, 推断为 any 类型
*/

(() => {
  let a = 3 // 定义变量同时赋值时, 会推断为值对应的类型
  // a = 'abc' // error

  let b  // 定义变量时不进行赋值, 会推断为any类
  b = 3
  b = 'abc'

  // let c = undefined   // 初始值undfined或null, 推断为 any 类型
  let c = null
  c = 2
  c = 'abc'
})()
